/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	GWTModuleDef.java
 * 模块说明：	
 * 修改历史：
 * Feb 13, 2008 - lxm - 创建。
 */
package com.hd123.rumba.request;

import java.util.HashMap;
import java.util.Map;

/**
 * gwt模块定义信息。
 * 
 * @author lxm
 * 
 */
class GWTModuleDef {

  private String publicPath;

  private Map<String, String> servlets;

  public GWTModuleDef() {
    publicPath = "public";
    servlets = new HashMap();
  }

  /**
   * gwt模块定义文件中的public路径。<br>
   * 具体说对应.gwt.xml文件中元素<code>public</code>的属性<code>path</code>定义。
   */
  public String getPublicPath() {
    return publicPath;
  }

  /**
   * gwt模块定义文件中的public路径。<br>
   * 具体说对应.gwt.xml文件中元素<code>public</code>的属性<code>path</code>定义。
   */
  public void setPublicPath(String publicPath) {
    this.publicPath = publicPath;
  }

  /**
   * gwt模块定义文件中所有的rpc调用配置信息。<br>
   * 具体说对应.gwt.xml文件中元素<code>servlet</code>定义，其中key对应属性<code>path</code>，value对应属性<code>class</code>及rpc实现类。
   */
  public Map<String, String> getServlets() {
    return servlets;
  }

  /**
   * gwt模块定义文件中所有的rpc调用配置信息。<br>
   * 具体说对应.gwt.xml文件中元素<code>servlet</code>定义，其中key对应属性<code>path</code>，value对应属性<code>class</code>及rpc实现类。
   */
  public void setServlets(Map<String, String> servlets) {
    this.servlets = servlets;
  }

  /**
   * 将指定为继承的模块定义合并到当前模块定义中。
   * 
   * @param inheritedModuleDef
   *          指定被继承的模块定义对象。
   */
  public void merge(GWTModuleDef inheritedModuleDef) {
    assert inheritedModuleDef != null;
    this.servlets.putAll(inheritedModuleDef.getServlets());
  }

}
